Virtualization technology has been used to create virtual computing environments including virtual servers and virtual software applications. An end-user can access and use a virtual application from a remote location. Moreover, access to a virtual application can be controlled which may assist in circumventing piracy and other unauthorized uses. Accordingly, a user having required permissions can access a desired application from a dedicated server. However, current virtualization technology can require a significant amount of time and effort when creating a virtualized application since machine and other changes are typically manually identified and captured in real-time.